package com.config;

import com.netty.client.WebSocketClient;
import com.topsoft.common.AppContext;
import com.topsoft.common.RedisService;
import com.topsoft.common.BaseMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

@Component
public class MessageTemplate {
    @Autowired SystemListener systemListener;


//    public void sendMessage(String keyName, String __recvQueue, JSONObject msgJson) {
//        systemListener.webSocketClient.sendMessage(keyName, __recvQueue, msgJson);
//    }
//
//    public void sendMessage(String __recvQueue,JSONObject msgJson){
//        systemListener.webSocketClient.sendMessage("websocket.urlSystem", __recvQueue, msgJson);
//    }
//
//    public void sendMessageByKey( String keyName,JSONObject msgJson){
//        systemListener.webSocketClient.sendMessage(keyName, null, msgJson);
//    }

    public void sendMessage(String queue, List<String> listMessage){
//        if (redisTemplate == null){
//            redisTemplate  = AppContext.getBean("redisTemplateMessage", RedisTemplate.class);
//        }
        //把发送的消息 先存到 Redis中, 待返回消费确认信息后删除

//        List<BaseMessage> listMsg = redisService.batchGet(listKeys);
//        //发送消息到对方

        //这里应该开启异步线程发送消息
        WebSocketClient.sendMessage(queue, listMessage);
    }

//    public void sendMsgByQueue(String __recvQueue,String messageString) {
//        sendMessage("websocket.urlSystem", __recvQueue, messageString);
//    }

//    public void sendMessage(String keyName,String __recvQueue,String messageString){
//        if (__recvQueue==null || __recvQueue.equals("")){
//        }else {
//            JSONObject msgJson;
//            try {
//                msgJson = JSONObject.parseObject(messageString);
//            } catch (Exception e) {
//                msgJson = new JSONObject(MiscHelper.isDebug);
//                msgJson.put("msg", messageString);
//            }
//
//            sendMessage(keyName, __recvQueue, msgJson);
//        }
//    }

//    public void sendMessage(BaseMessage baseMessage){
//        if (baseMessage.recvQueue()==null || baseMessage.recvQueue().equals("")){
//            return ;
//        }
//
//        JSONObject msgJson;
//        try {
//            msgJson = JSONObject.parseObject(messageString);
//        } catch (Exception e) {
//            msgJson = new JSONObject(MiscHelper.isDebug);
//            msgJson.put("msg", messageString);
//        }
//
//        sendMessage(keyName, __recvQueue, msgJson);
//
//    }

}
